//#define _CRT_SECURE_NO_WARNINGS 1
#include <iostream>
#include <string>
#include <utility>
using namespace std;
//
//bool isLetter(char x)
//{
//	if (x > 'a' && x < 'z')
//	{
//		return true;
//	}
//	if (x > 'A' && x < 'Z')
//	{
//		return true;
//	}
//	return false;
//}
//
//int main()
//{
//	string s1("h-el-lo wor-ld");
//	cout << s1 << endl;
//
//	int left = 0, right = 0;
//	while (left < right)
//	{
//		while (!isLetter(s1[left])&&left<right)
//		{
//			left++;
//		}
//
//		while (!isLetter(s1[right])&&left<right)
//		{
//			right++;
//		}
//		swap(s1[left],s1[right]);
//	}
//	cout << s1 << endl;
//
//	return 0;
//}

bool isLetter(char ch)
{
	if (ch >= 'a' && ch < 'z')
	{
		return true;
	}
	if (ch >= 'A' && ch <= 'Z')
	{
		return true;
	}
	return false;
}

int main()
{
	string s1("h-e!llo-ltl!");
	cout << s1 << endl;

	int left = 0, right = s1.length() - 1;

	while (left < right)
	{
		while (!isLetter(s1[left] )&& left < right)
		{
			left++;
		}
		while (!isLetter(s1[right]) && left < right)
		{
			--right;
		}
		swap(s1[left++], s1[right--]);
	}
	cout << s1 << endl;

	return 0;
}